Multiple reference picture motion compensation and fraction pixel motion estimation, also referred to as sub-pixel or sub-pel motion estimation, are key features in the new H.264/AVC video coding standard (i.e., MPEG-4 Part 10 commonly referred to as MPEG-4). Coding may include encoding and/or decoding. Multiple reference picture motion compensation is the use of multiple reference pictures for inter picture prediction. As is known in the art, inter picture prediction is generated from motion estimation. Motion estimation is the process of obtaining the motion vector used by most video compression schemes. It uses a block of pixels in a current picture to match a block of pixels in one or more previously-coded pictures (reference pictures) and identifying those pixels and their displacement (motion vector) from their location in the reference picture to their location in the current picture. H.264/AVC uses multiple reference picture motion compensation, which allows up to 16 reference pictures (or 32 reference fields, in the case of interlaced encoding). Previous standards allowed only one reference picture for motion estimation or two reference pictures for B pictures.
Matching process between pixels in a current picture and pixels non-interpolated in reference pictures is performed to obtain full-pixel motion vector for each reference. Sub-pixel motion estimation performs the search on a sub-pixel level interpolated from a full pixel in a reference picture and identifies the block in a reference picture that most closely matches a block in the current picture. H.264/AVC allows for quarter pixel motion estimation. Half-pixel motion estimation may also be performed. When searching for a block in a reference picture, sub-pixel motion estimation is normally performed around the pixels of full-pixel motion vector after the full pixel motion estimation is completed.
Multiple reference picture motion compensation and sub-pixel motion estimation used in H.264/AVC enhance the compression efficiency of video coding resulting in significant bit rate savings over MPEG-2 for the same quality of video. However, the encoding complexity of H.264/AVC increases significantly with these new features, especially when multiple references are used. For example, in some software implementations of an H.264/AVC video encoder, sub-pixel motion estimation can be the second most time consuming function of video encoding. Thus, even though multiple reference picture motion compensation and sub-pixel motion estimation increase the coding efficiency, they also increase the coding complexity. In order to reduce hardware complexity and system bandwidth, it is necessary for a video encoder system to select fewest references to go through sub-pixel motion estimation.